package com.dlmap.readbook.views;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class WebContent {
	public String getOneHtml(String htmlurl) throws IOException {
		URL url;
		String temp;
		StringBuffer sb = new StringBuffer();
		try {
			url = new URL(htmlurl);
			BufferedReader in = new BufferedReader(new InputStreamReader(url
					.openStream(), "gbk"));// 读取网页全部内容
			while ((temp = in.readLine()) != null) {
				sb.append(temp);
				sb.append("\r\n");
			}
			in.close();
		} catch (MalformedURLException me) {
			System.out.println("你输入的URL格式有问题！请仔细输入");
			me.getMessage();
			throw me;
		} catch (IOException e) {
			e.printStackTrace();
			throw e;
		}
		return sb.toString();
	}

	public String getTitle(String s) {
		String regex;
		String title = "";
		List<String> list = new ArrayList<String>();
		regex = "<title>.*?</title>";
		Pattern pa = Pattern.compile(regex, Pattern.CANON_EQ);
		Matcher ma = pa.matcher(s);
		while (ma.find()) {
			list.add(ma.group());
		}
		for (int i = 0; i < list.size(); i++) {
			title = title + list.get(i);
		}
		return outTag(title);
	}

	/** */
	/**
	 * 
	 * @param s
	 * @return 获得链接
	 */
	
	public List<String> getLink(String s) {
        String regex;
        List<String> list = new ArrayList<String>();
        regex = "<a[^>]*href=(\"([^\"]*)\"|\'([^\']*)\'|([^\\s>]*))[^>]*>(.*?)</a>";
        Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
        Matcher ma = pa.matcher(s);
        while (ma.find()) {
            list.add(ma.group());
        }
        return list;
    }

	/** */
	/**
	 * 
	 * @param s
	 * @return 获得脚本代码
	 */
	public List<String> getScript(String s) {
		String regex;
		List<String> list = new ArrayList<String>();
		regex = "<script.*?</script>";
		Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
		Matcher ma = pa.matcher(s);
		while (ma.find()) {
			list.add(ma.group());
		}
		return list;
	}

	/** */
	/**
	 * 
	 * @param s
	 * @return 获得CSS
	 */
	public List<String> getCSS(String s) {
		String regex;
		List<String> list = new ArrayList<String>();
		regex = "<style.*?</style>";
		Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
		Matcher ma = pa.matcher(s);
		while (ma.find()) {
			list.add(ma.group());
		}
		return list;
	}
	
	public List<String> getCC(String s) {
		String regex;
		List<String> list = new ArrayList<String>();
		regex = "<cc>.*?</cc>";
		Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
		Matcher ma = pa.matcher(s);
		while (ma.find()) {
			list.add(ma.group());
		}
		return list;
	}

	/** */
	/**
	 * 
	 * @param s
	 * @return 去掉标记
	 */
	public String outTag(String s) {
		return s.replaceAll("<.*?>", "");
	}
	
	public String br2nl(String s){
		s = s.replaceAll("&nbsp;", " ");
		s = s.replaceAll("<br />", "\r\n");
		s = s.replaceAll("<br/>", "\r\n");
		
		return s.replaceAll("<br>", "\r\n");
	}
	
	public static void main(String[] args) throws Exception {
		WebContent web = new WebContent();
		String tmp = web.getOneHtml("http://tieba.baidu.com/f?kz=564375918");
		List<String> li = web.getCC(tmp);
		for(int i=0;i<li.size();i++){
		System.out.println(web.outTag(web.br2nl(li.get(i))));
		}
	}
}
